package com.tj.bo.user.client;

import com.tj.bo.product.client.vo.Product;
import com.tj.bo.product.client.vo.ProductListVo;
import com.tj.bo.user.client.vo.input.UserProductOdds;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @program: binary-option
 * @description
 * @author: binary
 * @create: 2020-07-31 17:27
 **/
public interface UserProductService {


    /**
     * 获取当前活跃的产品列表
     *
     * @return
     */
    ProductListVo getAllActiveProductList(String userCode, boolean isGrey);

    /**
     * 根据产品code获取产品信息
     *
     * @param productCode
     * @return
     */
    Product getProductByCode(String productCode, String userCode, boolean isGrey);


    boolean insertUserProductService(UserProductOdds userProductOdds);

    /**
     * 插入新的率
     *
     * @param userCode
     * @param productCode
     * @param changeValue
     * @param ruleName
     * @param remark
     * @param expireDate
     */
    void insertUserProductServiceV2(String userCode, String productCode, BigDecimal changeValue, String ruleName, String remark, Date expireDate);

    /**
     * 根据产品code获取用户产品收益率
     *
     * @return
     */
    List<UserProductOdds> getByUserProductList(String productCode);

    /**
     * 获取结算收益率
     *
     * @param productCode
     * @param userCode
     * @param profit      当前大盘值
     * @return
     */
    BigDecimal getSettlementProfit(String productCode, String userCode, BigDecimal profit, boolean isGrey);
}
